package com.gdth.utils;

import java.util.ArrayList;
import java.util.List;

import com.gdth.bank.bean.SynchronizeBean;
import com.gdth.database.bean.TAppBfrjJbxxb;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

/**
 * Gson类
 * @author arvin
 *
 */
public class GsonUtil{
	
	public static List<SynchronizeBean> getSynchronizeBean(String arg0){
		JsonArray array = getJsonArray(arg0);
		List<SynchronizeBean> beans = new ArrayList<SynchronizeBean>();
		
		if (array == null || array.size() == 0)
			return beans;
		
		for (JsonElement el : array){
			SynchronizeBean bean = getGson().fromJson(el, SynchronizeBean.class);
			beans.add(bean);
		}
		
		return beans;
	}
	
	
	/**
	 * 
	 * @param arg0
	 * @return
	 */
	public static List<TAppBfrjJbxxb> getTAppBfrjJbxxbs(String arg0){
		JsonArray array = getJsonArray(arg0);
		List<TAppBfrjJbxxb> beans = new ArrayList<TAppBfrjJbxxb>();
		if (array == null || array.size() == 0)
			return beans;
		for (JsonElement el : array){
			TAppBfrjJbxxb bean = getGson().fromJson(el, TAppBfrjJbxxb.class);
			beans.add(bean);
		}
		
		return beans;
	}
	
	public static Gson getGson(){
		return new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
	}
	
	public static JsonArray getJsonArray(String str){
		//创建一个JsonParser
		JsonParser parser = new JsonParser();

		//通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象
		JsonElement el = parser.parse(str);

		//把JsonElement对象转换成JsonArray
		JsonArray jsonArray = null;
		if(el.isJsonArray()){
			jsonArray = el.getAsJsonArray();
		}
		
		return jsonArray;
	}
	
	public static JsonObject getJsonObject(String str){
		//创建一个JsonParser
		JsonParser parser = new JsonParser();
				
		//通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象
		JsonElement el = parser.parse(str);

		//把JsonElement对象转换成JsonObject
		JsonObject jsonObj = null;
		if(el.isJsonObject()){
			jsonObj = el.getAsJsonObject();  
		}
		
		return jsonObj;
	}
}
